import request from "@/utils/request";

const USER_BASE_URL = "/api/v1/weather";

const WeatherApi = {
  /**
   * 获取当前天气
   */
  getInfo() {
    return request<any, WeatherInfo>({
      url: `${USER_BASE_URL}/info`,
      method: "get",
    });
  },
};

export default WeatherApi;

/** 查询天气请求参数 */
export interface WeatherInfo {
  /**
   * 主键
   */
  id: string;
  /**
   * 省份
   */
  province: string;
  /**
   * 城市
   */
  city: string;

  /**
   * 纬度
   */
  latitude: string;

  /**
   * 经度
   */
  longitude: string;

  /**
   * 时区
   */
  timezone: string;

  /**
   * 海拔高度(米)
   */
  elevation: number; // 或 string 如需高精度

  /**
   * 日期
   */
  time: string; // 使用 ISO 字符串格式 (或 Date 类型)

  /**
   * 天气代码
   */
  weatherCode: number;

  /**
   * 日最高气温（℃）
   */
  temperature2mMax: number;

  /**
   * 日最低气温（℃）
   */
  temperature2mMin: number;

  /**
   * 体感最高温度（℃）
   */
  apparentTemperatureMax: number;

  /**
   * 体感最低温度（℃）
   */
  apparentTemperatureMin: number;

  /**
   * 日降水总量（mm）
   */
  precipitationSum: number;

  /**
   * 降雨量（mm）
   */
  rainSum: number;

  /**
   * 阵雨量（mm）
   */
  showersSum: number;

  /**
   * 降雪量（cm）
   */
  snowfallSum: number;

  /**
   * 降水持续小时数
   */
  precipitationHours: number;

  /**
   * 最大降水概率（%）
   */
  precipitationProbabilityMax: number;

  /**
   * 最大风速（km/h）
   */
  windSpeed10mMax: number;

  /**
   * 最大阵风（km/h）
   */
  windGusts10mMax: number;

  /**
   * 主导风向（度）;0°=北风 90°=东风 180°=南风 270° 西风
   */
  windDirection10mDominant: number;

  /**
   * 太阳辐射总量（MJ/m²）
   */
  shortwaveRadiationSum: number;

  /**
   * 参考作物蒸散量（mm）
   */
  et0FaoEvapotranspiration: number;

  /**
   * 日出时间 (格式: yyyy-MM-dd HH:mm:ss GMT+8)
   */
  sunrise: string;

  /**
   * 日落时间 (格式: yyyy-MM-dd HH:mm:ss GMT+8)
   */
  sunset: string;

  /**
   * 白昼时长
   */
  daylightDuration: number;

  /**
   * 日照时长
   */
  sunshineDuration: number;

  /**
   * 紫外线指数;>8=极高风险;6-7=高风险
   */
  uvIndexMax: number;

  /**
   * 晴空紫外线指数
   */
  uvIndexClearSkyMax: number;
}
